#ifndef _SERVER_FUNC_H
#define _SERVER_FUNC_H

#include "head.h"
#include "thread_pool.h"
#include "taskqueue.h"
#include "epoll.h"
#include "transport_protocol.h"
#include "register.h"
#include "database.h"

//server_module_loading



//接收新的客户端连接并加入监听队列、任务队列
int new_connect(int listenfd,struct epoll_event * events,threadpool_t * threadpool);
//用户身份验证
//接收到退出信号，停止建立新连接、清空任务队列、关闭线程池
void child_exit(int listenfd,threadpool_t * threadpool);
//接收旧文件描述符，创建任务
void make_task(int taskfd,threadpool_t * threadpool);

//用户注册
void * user_register(task_t * task);
//用户登录
void * user_login(task_t * task);
//cmd 
void * cmd(task_t * task);
//传输数据
void * transfor(task_t * task);

extern void * (*type_to_func[])(task_t *);

#endif